﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace Pg.BioMedics.SDR.Entities
{
    /// <summary>
    /// Document entity
    /// </summary>
    [Serializable]
    [DataContract]
    public class Document
    {
        /// <summary>
        /// Gets / sets Document unique id
        /// </summary>
        [DataMember]
        public int? Id
        {
            get;
            set;
        }

        /// <summary>
        /// Gets id of documents this document replaces
        /// </summary>
        [DataMember]
        public int? OriginalId
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets the document title
        /// </summary>
        [DataMember]
        public string Title
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets the document description
        /// </summary>
        [DataMember]
        public string Description
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets the document related content id
        /// </summary>
        [DataMember]
        public int? ContentId
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets reference to content in external storage system
        /// </summary>
        [DataMember]
        public string Reference
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets document type code
        /// </summary>
        [DataMember]
        public string TypeCode
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets language ISO code of this document
        /// </summary>
        [DataMember]
        public string LanguageCode
        {
            get;
            set;
        }

        /// <summary>
        /// Gets document last status code
        /// </summary>
        [DataMember]
        public string StatusCode
        {
            get;
            set;
        }

        /// <summary>
        /// Gets the document last status change date
        /// </summary>
        [DataMember]
        public DateTime? StatusDate
        {
            get;
            set;
        }

        /// <summary>
        /// Gets the document last status chenge author login
        /// </summary>
        [DataMember]
        public string StatusAuthorLogin
        {
            get;
            set;
        }
    }
}
